草庐IT

Java MessageFormat 空值

全部标签

java - 处理 protobuffers 中的空值

我正在研究从数据库中获取数据并构造protobuff消息的东西。鉴于可以从数据库中为某些字段获取空值的可能性,我将在尝试构造protobuff消息时得到空指针异常。从线程http://code.google.com/p/protobuf/issues/detail?id=57了解protobuffs不支持null,我想知道处理抛出NPE的唯一其他方法是否是将手动检查插入到与proto对应的java文件中,如下所示!messageProtoPerson{optionalstringfirstName=1;optionalstringlastName=2;optionalstringadd

java - 处理 protobuffers 中的空值

我正在研究从数据库中获取数据并构造protobuff消息的东西。鉴于可以从数据库中为某些字段获取空值的可能性,我将在尝试构造protobuff消息时得到空指针异常。从线程http://code.google.com/p/protobuf/issues/detail?id=57了解protobuffs不支持null,我想知道处理抛出NPE的唯一其他方法是否是将手动检查插入到与proto对应的java文件中,如下所示!messageProtoPerson{optionalstringfirstName=1;optionalstringlastName=2;optionalstringadd

Java:避免在嵌套类中检查空值(深度空值检查)

假设我有一个类(class)家庭。它包含一个人员列表。每个(类)Person包含一个(类)地址。每个(类)地址包含一个(类)邮政编码。任何“中间”类都可以为空。那么,有没有一种简单的方法可以访问PostalCode而无需在每个步骤中检查null?即,有没有办法避免以下菊花链代码?我知道没有“native”Java解决方案,但希望是否有人知道库或其他东西。(检查了Commons&Guava并没有看到任何东西)if(family!=null){if(family.getPeople()!=null){if(family.people.get(0)!=null){if(people.get(

Java:避免在嵌套类中检查空值(深度空值检查)

假设我有一个类(class)家庭。它包含一个人员列表。每个(类)Person包含一个(类)地址。每个(类)地址包含一个(类)邮政编码。任何“中间”类都可以为空。那么,有没有一种简单的方法可以访问PostalCode而无需在每个步骤中检查null?即,有没有办法避免以下菊花链代码?我知道没有“native”Java解决方案,但希望是否有人知道库或其他东西。(检查了Commons&Guava并没有看到任何东西)if(family!=null){if(family.getPeople()!=null){if(family.people.get(0)!=null){if(people.get(

java - 您是否应该为 Java 枚举定义一个空值/未知值?

当您为接口(interface)中可能“未定义”的事物定义枚举时,您是否应该为此定义一个单独的枚举值,或者在这些情况下只使用enumValue=null吗?例如,serviceX.setPrice(PricepriceEnum)enumPrice{CHEAP,EXPENSIVE,VERRRY_EXPENSIVE,UNKNOWN}和priceEnum.UNKNOWN在需要时或enumPrice{CHEAP,EXPENSIVE,VERRRY_EXPENSIVE}需要时priceEnum=null?对此进行了一些辩论。想到的几点:使用Price.UNKNOWN可以节省一些“if(price=

java - 您是否应该为 Java 枚举定义一个空值/未知值?

当您为接口(interface)中可能“未定义”的事物定义枚举时,您是否应该为此定义一个单独的枚举值,或者在这些情况下只使用enumValue=null吗?例如,serviceX.setPrice(PricepriceEnum)enumPrice{CHEAP,EXPENSIVE,VERRRY_EXPENSIVE,UNKNOWN}和priceEnum.UNKNOWN在需要时或enumPrice{CHEAP,EXPENSIVE,VERRRY_EXPENSIVE}需要时priceEnum=null?对此进行了一些辩论。想到的几点:使用Price.UNKNOWN可以节省一些“if(price=

java - 为什么Java允许将空值分配给枚举?

这更像是一个设计问题,所以没有代码。如果您希望我这样做,我可以发布创建Enum并将其分配给null的代码。:))我最近一直在思考这个问题,但找不到一个好的理由。Enum常量隐含地是static和final。枚举的意思是说-“我可以取一个存在于我身上的常数的值”。为什么允许Enum有一个null值?为什么不将Enum的值隐式默认为Enum.DEFAULT或Enum.None?这不是比允许Enum为null更好的方法吗? 最佳答案 首先null表示不存在实例。提供像DEFAULT或NONE这样的默认常量会改变这个含义。其次,为什么你需要

java - 为什么Java允许将空值分配给枚举?

这更像是一个设计问题,所以没有代码。如果您希望我这样做,我可以发布创建Enum并将其分配给null的代码。:))我最近一直在思考这个问题,但找不到一个好的理由。Enum常量隐含地是static和final。枚举的意思是说-“我可以取一个存在于我身上的常数的值”。为什么允许Enum有一个null值?为什么不将Enum的值隐式默认为Enum.DEFAULT或Enum.None?这不是比允许Enum为null更好的方法吗? 最佳答案 首先null表示不存在实例。提供像DEFAULT或NONE这样的默认常量会改变这个含义。其次,为什么你需要

java - 如何处理 PreparedStatement 中的(可能)空值?

声明是SELECT*FROMtableAWHEREx=?并且参数是通过java.sql.PreparedStatement'stmt'插入的stmt.setString(1,y);//ymaybenull如果y为null,则该语句在每种情况下都不返回任何行,因为x=null始终为false(应为xISNULL)。一种解决方案是SELECT*FROMtableAWHEREx=?OR(xISNULLAND?ISNULL)但是我必须两次设置相同的参数。有没有更好的解决方案?谢谢! 最佳答案 我一直按照您在问题中显示的方式进行操作。两次设置

java - 如何处理 PreparedStatement 中的(可能)空值?

声明是SELECT*FROMtableAWHEREx=?并且参数是通过java.sql.PreparedStatement'stmt'插入的stmt.setString(1,y);//ymaybenull如果y为null,则该语句在每种情况下都不返回任何行,因为x=null始终为false(应为xISNULL)。一种解决方案是SELECT*FROMtableAWHEREx=?OR(xISNULLAND?ISNULL)但是我必须两次设置相同的参数。有没有更好的解决方案?谢谢! 最佳答案 我一直按照您在问题中显示的方式进行操作。两次设置